# coding: utf-8

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

from time import localtime
from calendar import HTMLCalendar

TOPO = '''<html><head><title>Calendário</title>
<link href="/static/base.css" rel="stylesheet" type="text/css" media="screen" />
</head><body>
'''
LINK = '''<a href="?mes=%(mes)s&ano=%(ano)s">%(mes)s / %(ano)s</a> '''
RODAPE = '''</body></html>'''

class Calendario(webapp.RequestHandler):
    def get(self):
        cal = HTMLCalendar()
        ano_atual, mes_atual, dia = localtime()[:3]
        ano = int(self.request.get('ano', ano_atual))
        mes = int(self.request.get('mes', mes_atual))
        if mes == 1:
            mes_ant = 12
            ano_ant = ano - 1
        else:
            mes_ant = mes - 1
            ano_ant = ano
        if mes == 12:
            mes_seg = 1
            ano_seg = ano + 1
        else:
            mes_seg = mes + 1
            ano_seg = ano
        exibir = self.response.out.write
        exibir(TOPO)
        exibir(LINK % dict(mes=mes_ant, ano=ano_ant))
        exibir(LINK % dict(mes=mes_seg, ano=ano_seg))
        miolo = cal.formatmonth(ano, mes)
        if mes_atual == mes and ano_atual == ano:
            miolo = miolo.replace('>%s<'%dia, '><span class="hoje">%s</span><'%dia)
        exibir(miolo)
        if mes_atual != mes or ano_atual != ano:
            exibir('mês atual: ')
            exibir(LINK % dict(mes=mes_atual, ano=ano_atual))
        exibir(RODAPE)
    
aplicacao = webapp.WSGIApplication([('/', Calendario),], debug=True)

def main():
    run_wsgi_app(aplicacao)

if __name__ == '__main__':
    main()
    
